package ar.edu.unq.model;

import java.util.ArrayList;
import java.util.List;

/**
 * Formacion del Equipo
 * 
 * @author Nicolas Faure
 */
public class Formacion {

    private int id;

    private Equipo equipo;

    private List<Titular> titulares = new ArrayList<Titular>();

    private List<Jugador> suplentes = new ArrayList<Jugador>();

    public Formacion() {
    }

    public int getId() {
        return this.id;
    }

    public void setId(final int id) {
        this.id = id;
    }

    public List<Titular> getTitulares() {
        return this.titulares;
    }

    public List<Jugador> getSuplentes() {
        return this.suplentes;
    }

    public void setSuplentes(final List<Jugador> suplentes) {
        this.suplentes = suplentes;
    }

    public Equipo getEquipo() {
        return this.equipo;
    }

    public void setEquipo(final Equipo equipo) {
        this.equipo = equipo;
    }

    public void setTitulares(final List<Titular> titulares) {
        this.titulares = titulares;
    }

    public void agregarTitular(final Titular titular) {
        this.titulares.add(titular);
    }

    /**
     * Verifica si un jugador es titular en esta formacion, independientemente de que posicion ocupe
     * 
     * @return True en caso de que sea Titular, False en caso contrario
     */
    public Boolean esTitular(final Jugador jugador) {
        for (Titular titular : this.getTitulares()) {
            if (titular.getJugador().equals(jugador)) {
                return true;
            }
        }
        return false;
    }

    // public Equipo getEquipo() {
    // throw new UnsupportedOperationException();
    // }

}
